package Test28;

//正则表达式

public class Test20 {
    public static void main(String[] args) {

        /*//  \  转义字符  改变后面那个字符原本的含义
        //练习：以字符串的形式打印一个双引号
        // "在Java中表示字符串的开头或者结尾

        //此时\表示转义字符，改变了后面那个双引号原本的含义
        //把它变成了一个普普通通的双引号而已。
        System.out.println("\"");*/

        /*//  \ 表示转义字符
        //  \\前面的\是一个转义字符，改变了后面的\原本的含义，把它变成了一个普普通通的\而已。
        System.out.println("D:\\code\\java-test1\\src\\Test28");*/


        System.out.println("----------1----------");
        // .表示任意一个字符
        System.out.println("你".matches("."));//true
        System.out.println("你".matches(".."));//false
        System.out.println("你a".matches(".."));//true

        System.out.println("----------2----------");
        // \\d只能是任意的一位数字
        // 简单来记：两个\表示一个\
        System.out.println("a".matches("\\d"));//false
        System.out.println("3".matches("\\d"));//true
        System.out.println("333".matches("\\d"));//false
        System.out.println("333".matches("\\d\\d\\d"));//true

        System.out.println("----------3----------");
        // \\w只能是一位单词字符[a-zA-Z_0-9]
        System.out.println("z".matches("\\w"));//true
        System.out.println("2".matches("\\w"));//true
        System.out.println("21".matches("\\w"));//false
        System.out.println("你".matches("\\w"));//false
        System.out.println("_".matches("\\w"));//true

        System.out.println("----------4----------");
        //非单词字符
        System.out.println("你".matches("\\W"));//true
        System.out.println("----------------------------------------");
        //以上正则匹配只能校验单个字符


        System.out.println("----------5----------");
        // 必须是数字、字母、下划线 至少6位
        System.out.println("2442fsfsf".matches("\\w{6,}"));//true
        System.out.println("244f".matches("\\w{6,}"));//false

        System.out.println("----------6----------");
        // 必须是数字和字符  必须是4位
        System.out.println("23df".matches("[a-zA-Z0-9]{4}"));//true
        System.out.println("23_f".matches("[a-zA-Z0-9]{4}"));//false
        System.out.println("23df".matches("[\\w&&[^_]]{4}"));//true
        System.out.println("23_f".matches("[\\w&&[^_]]{4}"));//false
    }
}
